import numpy as np
import pandas as pd
# a = np.arange(12).reshape(3,4)
# print(a)
"""
如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的，
没有数值标签，而 Pandas 就是字典形式。Pandas是基于Numpy构建的，让Numpy为中心的应用变得更加简单。
"""
"""
# 要使用pandas，首先需要了解他主要两个数据结构：Series和DataFrame。
# Series的字符串表现形式为：索引在左边，值在右边。由于我们没有为数据指定索引。于是会自动创建一个0到N-1（N为长度）的整数型索引。
"""
a_01 = pd.Series([1,2,3.1,np.nan,41])
print(a_01)

"""
DataFrame是一个表格型的数据结构，它包含有一组有序的列，每列可以是不同的值类型（数值，字符串，布尔值等）。
DataFrame既有行索引也有列索引， 它可以被看做由Series组成的大字典。
"""
dates = pd.date_range('20200612',periods=6)
demo = pd.DataFrame(np.random.rand(6,4),index=dates,columns=['a','b','c','d'])
print(dates,demo)
print(demo['a'])
demo_01 = pd.DataFrame(np.arange(12).reshape(3,4))
print(demo_01)
demo_02 = pd.DataFrame({
    'A':1.0,
    'B':pd.date_range('20200616',periods=4),
    'C':pd.Series(1,index=list(range(4)),dtype='float32'),
    'D':np.array([3]*4,dtype='int32'),
    'E':pd.Categorical(["test","train","test","train"]),
    'F':'fool'
})
print(demo_02)
print(demo_02['A'])
print(demo_02.dtypes)
print(demo_02.index)
print(demo_02.columns)
print(demo_02.values)
print(demo_02.describe)
print(demo_02.transpose)
# 对数据的 index 进行排序并输出:
print(demo_02.sort_index(axis=1,ascending=False))
# 对数据 值 排序输出
print(demo_02.sort_values(by='B'))